
*The code below replicates the tables for the paper: Control Risk Premium: Dual-Class Shares, Family Ownership, and Minority Investor Returns. Financial Management, forthcoming.
*If you use the code or the data, please cite: Anderson, R., Ottolenghi, E., Reeb, D., & Savor, P. (2024). “Control risk premium: Dual-class shares, family ownership, and minority investor returns.” Financial Management, 1–37. https://onlinelibrary.wiley.com/doi/10.1111/fima.12481

*To enhance user understanding, we provide pseudo-datasets in which gvkeys are replaced with anonymous unique_ids.  
*These pseudo-datasets represent only a small sample intended for illustration purposes.  
*This replication stata code, along with the "FM_pseudo_sample.dta" dataset, generates results for all tables except Table 7.  
*Table 7 requires a separate SAS code "FM_Table_7_monthly_tests", which we provide along with its corresponding pseudo-sample "FM_table7_pseudo_data".  
*Figure 1 utilizes IPO data sourced from Jay R. Ritter's website.  


*Figure 1* Please refer to Jay R. Ritter's website for IPO data
use "D:\Dropbox\Dual_Class_Paper\Data\ritter_ipo_data_FM.dta", clear
sort year dual_class
graph twoway line dual_IPO_frac1 year, title("Graph 1: Fraction of Dual Class IPOs ") xtitle("year") ytitle("Nr of dual class IPOs / Total IPOs ")

*Table 1 Variable Definitions
*no code is used*

*Table 2 Sample Summary Statistics
*Table 2 Panel A-Full Sample
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
count if dual_class==1
count if single_class==1
ttest family, by(dual_class)
reg family dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest family_own, by(dual_class)
reg family_own dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest family_vote, by(dual_class)
reg family_vote dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest founder, by(dual_class)
reg founder dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest family_desc, by(dual_class)
reg family_desc dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest hired_hand, by(dual_class)
reg hired_hand dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest at, by(dual_class)
reg at dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest firm_age, by(dual_class)
reg firm_age dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest risk_use_w , by(dual_class)
reg risk_use_w  dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest leverage_w_use, by(dual_class)
reg leverage_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest tobinq_w_use, by(dual_class)
reg tobinq_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest roa_w_use, by(dual_class)
reg roa_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest r_d_over_sales_w_use, by(dual_class)
reg r_d_over_sales_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest inst_own_perc_adj_w, by(dual_class)
reg inst_own_perc_adj_w dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest excess_ret_w, by(dual_class)
reg excess_ret_w dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest abn_ret_1yr_w , by(dual_class)
reg abn_ret_1yr_w  dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest excess_ret_ff25_w, by(dual_class)
reg excess_ret_ff25_w dual_class if dual_class==1 | single_class==1, cl(unique_id)

*nr of industries
tab ff48_code
tab ff48_code if dual_class
tab ff48_code if single_class

*Table 2 Panel B
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
sum family_own if family_dual==1
sum family_own if nonfam_dual==1
sum family_own if family_single==1
sum family_own if nonfam_single==1
reg family_own family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg family_own family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg family_own family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg family_own nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg family_own family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum family_vote if family_dual==1
sum family_vote if nonfam_dual==1
sum family_vote if family_single==1
sum family_vote if nonfam_single==1
reg family_vote family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg family_vote family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg family_vote family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg family_vote nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg family_vote family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum founder if family_dual==1
sum founder if family_single==1
reg founder family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg founder family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg founder family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg founder nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg founder family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum family_desc if family_dual==1
sum family_desc if family_single==1
reg family_desc family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg family_desc family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg family_desc family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg family_desc nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg family_desc family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum hired_hand if family_dual==1
sum hired_hand if family_single==1
reg hired_hand family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg hired_hand family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg hired_hand family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg hired_hand nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg hired_hand family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum at if family_dual==1
sum at if nonfam_dual==1
sum at if family_single==1
sum at if nonfam_single==1
reg at family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg at family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg at family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg at nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg at nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg at family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum firm_age if family_dual==1
sum firm_age if nonfam_dual==1
sum firm_age if family_single==1
sum firm_age if nonfam_single==1
reg firm_age family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg firm_age family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg firm_age family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg firm_age nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg firm_age nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg firm_age family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum risk_use_w if family_dual==1
sum risk_use_w if nonfam_dual==1
sum risk_use_w if family_single==1
sum risk_use_w if nonfam_single==1
reg risk_use_w family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg risk_use_w family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg risk_use_w family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg risk_use_w nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg risk_use_w nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg risk_use_w family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum leverage_w_use if family_dual==1
sum leverage_w_use if nonfam_dual==1
sum leverage_w_use if family_single==1
sum leverage_w_use if nonfam_single==1
reg leverage_w_use family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg leverage_w_use family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg leverage_w_use family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg leverage_w_use nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg leverage_w_use nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg leverage_w_use family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum tobinq_w_use if family_dual==1
sum tobinq_w_use if nonfam_dual==1
sum tobinq_w_use if family_single==1
sum tobinq_w_use if nonfam_single==1
reg tobinq_w_use family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg tobinq_w_use family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg tobinq_w_use family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg tobinq_w_use nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg tobinq_w_use nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg tobinq_w_use family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum roa_w_use if family_dual==1
sum roa_w_use if nonfam_dual==1
sum roa_w_use if family_single==1
sum roa_w_use if nonfam_single==1
reg roa_w_use family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg roa_w_use family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg roa_w_use family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg roa_w_use nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg roa_w_use nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg roa_w_use family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum r_d_over_sales_w_use if family_dual==1
sum r_d_over_sales_w_use if nonfam_dual==1
sum r_d_over_sales_w_use if family_single==1
sum r_d_over_sales_w_use if nonfam_single==1
reg r_d_over_sales_w_use family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg r_d_over_sales_w_use family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg r_d_over_sales_w_use family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg r_d_over_sales_w_use nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg r_d_over_sales_w_use nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg r_d_over_sales_w_use family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum inst_own_perc_adj_w if family_dual==1
sum inst_own_perc_adj_w if nonfam_dual==1
sum inst_own_perc_adj_w if family_single==1
sum inst_own_perc_adj_w if nonfam_single==1
reg inst_own_perc_adj_w family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg inst_own_perc_adj_w family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg inst_own_perc_adj_w family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg inst_own_perc_adj_w nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg inst_own_perc_adj_w nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg inst_own_perc_adj_w family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum excess_ret_w if family_dual==1
sum excess_ret_w if nonfam_dual==1
sum excess_ret_w if family_single==1
sum excess_ret_w if nonfam_single==1
reg excess_ret_w family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg excess_ret_w family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg excess_ret_w family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg excess_ret_w nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg excess_ret_w nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg excess_ret_w family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum abn_ret_1yr_w if family_dual==1
sum abn_ret_1yr_w if nonfam_dual==1
sum abn_ret_1yr_w if family_single==1
sum abn_ret_1yr_w if nonfam_single==1
reg abn_ret_1yr_w family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg abn_ret_1yr_w family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg abn_ret_1yr_w family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg abn_ret_1yr_w nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg abn_ret_1yr_w nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg abn_ret_1yr_w family_single if family_single==1 | nonfam_single==1, cl(unique_id)

sum excess_ret_ff25_w if family_dual==1
sum excess_ret_ff25_w if nonfam_dual==1
sum excess_ret_ff25_w if family_single==1
sum excess_ret_ff25_w if nonfam_single==1
reg excess_ret_ff25_w family_dual if family_dual==1 | nonfam_dual==1, cl(unique_id)
reg excess_ret_ff25_w family_dual if family_dual==1 | family_single==1, cl(unique_id)
reg excess_ret_ff25_w family_dual if family_dual==1 | nonfam_single==1, cl(unique_id)
reg excess_ret_ff25_w nonfam_dual if nonfam_dual==1 | family_single==1, cl(unique_id)
reg excess_ret_ff25_w nonfam_dual if nonfam_dual==1 | nonfam_single==1, cl(unique_id)
reg excess_ret_ff25_w family_single if family_single==1 | nonfam_single==1, cl(unique_id)

*nr of industries
tab ff48_code if family_dual==1
tab ff48_code if nonfam_dual==1
tab ff48_code if family_single==1
tab ff48_code if nonfam_single==1

*Table 2 Panel C-Matched Sample
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
preserve
keep if matched_sample_df_sf==1
ttest family_own, by(dual_class) 
reg family_own dual_class if dual_class==1 | single_class==1 , cl(unique_id)
ttest family_vote, by(dual_class)
reg family_vote dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest founder, by(dual_class)
reg founder dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest family_desc, by(dual_class)
reg family_desc dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest hired_hand, by(dual_class)
reg hired_hand dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest at, by(dual_class)
reg at dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest firm_age, by(dual_class)
reg firm_age dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest risk_use_w , by(dual_class)
reg risk_use_w  dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest leverage_w_use, by(dual_class)
reg leverage_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest tobinq_w_use, by(dual_class)
reg tobinq_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest roa_w_use, by(dual_class)
reg roa_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest r_d_over_sales_w_use, by(dual_class)
reg r_d_over_sales_w_use dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest inst_own_perc_adj_w, by(dual_class)
reg inst_own_perc_adj_w dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest excess_ret_w, by(dual_class)
reg excess_ret_w dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest abn_ret_1yr_w , by(dual_class)
reg abn_ret_1yr_w  dual_class if dual_class==1 | single_class==1, cl(unique_id)
ttest excess_ret_ff25_w, by(dual_class)
reg excess_ret_ff25_w dual_class if dual_class==1 | single_class==1, cl(unique_id)
tab ff48_code
tab ff48_code if dual_class
tab ff48_code if single_class
restore

*Table 3-Industry Breakdown of Single- and Dual-Class Share Firms by Ownership Type
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
tab ff48_code 
tab ff48_code if family_dual==1
tab ff48_code if nonfam_dual==1
tab ff48_code if family_single==1
tab ff48_code if nonfam_single==1
tabout ff48_code family_single using tab1.xls,replace cells(freq col row) f(2)
tabout ff48_code family_dual using tab2.xls,replace cells(freq col row) f(2)
tabout ff48_code nonfam_single using tab3.xls,replace cells(freq col row) f(2)
tabout ff48_code nonfam_dual using tab4.xls,replace cells(freq col row) f(2)
tabout ff48_code dual_class using tab5.xls,replace cells(freq col row) f(2)

*Table 4-Regressions of Institutional Ownership on Firm Ownership Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
esttab using Table_4.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Table 5-Excess Returns, Share Class Structure, and Ownership Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg excess_ret_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg abn_ret_1yr_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_ff25_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg abn_ret_1yr_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_ff25_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
esttab using Table_5.csv, label title("Excess Returns") mtitles("Industry Excess" "Industry Excess" "Industry Excess" "Market Excess" "Market Excess" "Market Excess" "Fama-French" "Fama-French" "Fama-French") t star(* 0.10 * 0.05 ** 0.01) replace
test family_single=family_dual
test family_dual=nonfam_dual
test family_single=nonfam_dual

*Table 6-Excess Returns and the Disparity between Cash-flow Rights and Voting Control
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg excess_ret_w wedge_new_w ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_w wedge_new_w family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_w wedge_new_w family family_wedge_new ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
esttab using Table_6.csv, label title("Excess Returns") mtitles("Industry Excess" "Industry Excess" "Industry Excess") t star(* 0.10 * 0.05 ** 0.01) replace

*Table 7-Calendar-time Portfolio Analysis
*see seperate SAS code*

*Table 8-Excess Returns on Negative Industry Shocks and Firm Ownership Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo:reg excess_ret_w vw_sale_gr_chng2_hi_vote_5 vw_sale_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_emp_gr_chng2_hi_vote_5 vw_emp_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_ni_chng2_hi_vote_5 vw_ni_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_roa_chng2_hi_vote_5 vw_roa_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
esttab using Ind_Shock_Table.csv, label title("Negative Industry Shocks") mtitles("Excess Returns" "Excess Returns" "Excess Returns") t star(* 0.10 * 0.05 ** 0.01) replace

***********************************************************************************************************************
*APPENDICES*
*Appendix A-Regressions of Institutional Ownership on Firm Ownership Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 & tech==0, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 & tech==0, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 & tech==0, ab(ff48_code) cl(unique_id)
esttab using Appendix_A.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table B: Firm Valuation, Share-class Structure, and Equity Ownership Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg tobinq_w_use dual_class ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample ,ab(ff48_code) cl(unique_id)
eststo: areg tobinq_w_use family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample ,ab(ff48_code) cl(unique_id)
eststo: areg tobinq_w_use dual_class ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 &  matched_sample_df_sf==1,ab(ff48_code) cl(unique_id)
esttab using Appendix_B.csv, label title("Tobin's Q") mtitles("Tobin's Q" "Tobin's Q" "Tobin's Q" ) t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table C:Regressions of Institutional Ownership on Firm Ownership Structure (S12 Index Funds)
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w_index_only dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_index_only family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_index_only dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
esttab using Appendix_C.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table D:Regressions of Institutional Ownership on Firm Ownership Structure (S12 Non-Index Funds) 
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w_non_index dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_non_index family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_non_index dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
esttab using Appendix_D.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table E:Regressions of Institutional Ownership on Firm Ownership Structure – Index Inclusion Control
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use rus3000 i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use rus3000 i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use rus3000 i.year if full_sample==1, ab(ff48_code) cl(unique_id)
esttab using Appendix_E.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table F:Regressions of Institutional Ownership on Firm Ownership Structure (Thomson 13F Institutions)
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg inst_own_perc_adj_w_13f dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_13f family_dual family_single nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
eststo: areg inst_own_perc_adj_w_13f dual_fam_inter dual_class family ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1, ab(ff48_code) cl(unique_id)
esttab using Appendix_F.csv, label title("institutional Ownership") mtitles("Institutional Ownership" "Institutional Ownership" "Institutional Ownership") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table G: Excess Returns, Share Class Structure, and Ownership Structure - Matched Sample
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
preserve
keep if matched_sample_d_s==1
eststo clear
eststo: areg excess_ret_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg abn_ret_1yr_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_ff25_w dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg abn_ret_1yr_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_ff25_w family_single family_dual nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1,ab(ff48_code) cl(unique_id)
esttab using Appendix_G.csv, label title("Excess Returns") mtitles("Industry Excess" "Industry Excess" "Industry Excess" "Market Excess" "Market Excess" "Market Excess" "Fama-French" "Fama-French" "Fama-French") t star(* 0.10 * 0.05 ** 0.01) replace
test family_single=family_dual
test family_dual=nonfam_dual
test family_single=nonfam_dual
restore

*Appendix Table H:  Stock Return Comovement for Firms With and Without Controlling Shareholders
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: reg stock_ann_ret inter_d_index_vw inter_d_other_vw dual_class dual_ann_ret_vw non_dual_ann_ret_vw 
eststo: reg stock_ann_ret inter_f_index_vw inter_f_other_vw family fam_ann_ret_vw non_fam_ann_ret_vw 
esttab using Appendix_H.csv, t ar2 star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table I:  Operating Performance on Negative Industry Shocks and Firm Ownership Structure 
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo:reg oibdp vw_ni_chng2_hi_vote_5 vw_ni_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg oibdp vw_roa_chng2_hi_vote_5 vw_roa_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg oibdp vw_sale_gr_chng2_hi_vote_5 vw_sale_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg oibdp vw_emp_gr_chng2_hi_vote_5 vw_emp_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg roe vw_ni_chng2_hi_vote_5 vw_ni_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg roe vw_roa_chng2_hi_vote_5 vw_roa_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg roe vw_sale_gr_chng2_hi_vote_5 vw_sale_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
eststo:reg roe vw_emp_gr_chng2_hi_vote_5 vw_emp_gr_chng2_ftile1 hi_vote_5 ln_tot_assets_w_use ln_frmage leverage_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code , cl(unique_id)
esttab using Appendix_I.csv, label title("Negative Industry Shocks")  t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table J: Negative Industry Shocks and Dual-Class Structure
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo:reg excess_ret_w vw_sale_gr_chng2_dual vw_sale_gr_chng2_ftile1 dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_emp_gr_chng2_dual vw_emp_gr_chng2_ftile1 dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_ni_chng2_dual vw_ni_chng2_ftile1 dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
eststo:reg excess_ret_w vw_roa_chng2_dual vw_roa_chng2_ftile1 dual_class ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year i.ff48_code, cl(unique_id)
esttab using Appendix_J.csv, label title("Negative Industry Shocks") mtitles("Excess Returns" "Excess Returns" "Excess Returns") t star(* 0.10 * 0.05 ** 0.01) replace

*Appendix Table K: Excess Returns and Family Firm Type
use "D:\Dropbox\Dual_Class_Paper\Financial Management Submission\Data Code\FM_pseudo_sample.dta", clear
eststo clear
eststo: areg excess_ret_w single_founder single_desc single_prof dual_founder dual_desc dual_prof nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg abn_ret_1yr_w single_founder single_desc single_prof dual_founder dual_desc dual_prof nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
eststo: areg excess_ret_ff25_w single_founder single_desc single_prof dual_founder dual_desc dual_prof nonfam_dual ln_tot_assets_w_use ln_frmage leverage_w_use roa_w_use risk_use_w r_d_over_sales_w_use i.year if full_sample==1 ,ab(ff48_code) cl(unique_id)
esttab using Appendix_K.csv, label title("Excess Returns") mtitles("Industry Excess" "Industry Excess") t star(* 0.10 * 0.05 ** 0.01) replace
***************************************************************************************************************






















